home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / citadel_overflow.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  71 lines

  1. #
  2. # (C) Tenable Network Security
  3. #
  4.  
  5. if(description)
  6. {
  7.  script_id(13856);
  8.  script_bugtraq_id(10833);
  9.  script_version("$Revision: 1.3 $");
  10.  
  11.  name["english"] = "Citadel/UX Username overflow";
  12.  
  13.  script_name(english:name["english"]);
  14.  
  15.  desc["english"] = "
  16. The remote host is running Citadel/UX, a BBS software for Unix systems.
  17.  
  18. There is a buffer overflow in the remote version of this software
  19. which may be exploited by an attacker to execute arbitrary commands
  20. on the remote host.
  21.  
  22. To exploit this flaw, an attacker would need to provide a specially
  23. crafted argument to the USER command.
  24.  
  25. Solution : Upgrade to Citadel 6.24 or newer
  26. Risk factor : High";
  27.  
  28.  script_description(english:desc["english"]);
  29.  
  30.  summary["english"] = "Checks the version of the remote Citadel server";
  31.  
  32.  script_summary(english:summary["english"]);
  33.  
  34.  script_category(ACT_GATHER_INFO);
  35.  
  36.  script_copyright(english:"This script is Copyright (C) 2004 Tenable Network Security");
  37.  family["english"] = "Gain a shell remotely";
  38.  script_family(english:family["english"]);
  39.  
  40.  script_dependencies("find_service2.nasl");
  41.  script_require_ports("Services/citadel/ux", 504);
  42.  exit(0);
  43. }
  44.  
  45.  
  46. port = get_kb_item("Services/citadel/ux");
  47. if ( ! port ) port = 504;
  48.  
  49. if ( ! get_port_state(port) ) exit(0);
  50. soc = open_sock_tcp(port);
  51. if ( ! soc ) exit(0);
  52.  
  53. greetings = recv_line(socket:soc, length:4096);
  54. if ( ! ( greetings =~ "^200.*Citadel(/UX)?.*" ) ) exit(0);
  55.  
  56. send(socket:soc, data:'INFO\r\n');
  57. for ( i = 0 ; i < 15 ; i ++ )
  58. {
  59.  r = recv_line(socket:soc, length:4096);
  60.  if ( ! r ) break;
  61.  if ( r =~ "^000" ) break;
  62.  data += r;
  63. }
  64.  
  65. version = egrep(pattern:"^Citadel(/UX)? ([0-5]\.*|6\.([0-1][0-9]|2[0-3])[^0-9])",
  66.         string:data);
  67.  
  68. if ( version )
  69.     security_hole(port);
  70.  
  71.